home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / Libraries / SAT 2.3a1 / SAT Think Lib ƒ / SAT.p < prev    next >
Encoding:
Text File  |  1994-11-17  |  12.1 KB  |  153 lines  |  [TEXT/PJMM]

  1. ection options}
  2.         kKindCollision = 0;
  3.         kForwardCollision = 1;
  4.         kBackwardCollision = 2;
  5.         kNoCollision = 3;
  6.         kForwardOneCollision = 4;
  7.  
  8.     var
  9. {$J+}
  10.         gSAT: SATglobalsRec;                {Most globals in a record. See above.}
  11.         gSATSoundErrorProc: ProcPtr;        {Pointer to procedure to call on sound error.}
  12. {$J-}
  13.  
  14. {Initializing and customizing}
  15.     procedure SATConfigure (PICTfit: boolean; newSorting, newCollision, searchWidth: integer);
  16.     procedure SATInit (pictID, bwpictID, Xsize, Ysize: integer);
  17.     procedure SATCustomInit (pictID, bwpictID: integer; SATdrawingArea: Rect; {}
  18.                                     preloadedWind: WindowPtr; chosenScreen: GDHandle; useMenuBar, {}
  19.                                     centerDrawingArea, fillScreen, dither4bit, beSmart: Boolean);
  20. {Maintainance, background manipulation etc.}
  21.     function SATDepthChangeTest: Boolean;
  22.     procedure SATDrawPICTs (pictID, bwpictID: integer);
  23.     procedure SATRedraw;
  24. {Drawing}
  25.     procedure SATPlotFace (theFace: FacePtr; theGrafPtr: GrafPtr; theGDevice: GDHandle;{}
  26.                                     where: Point; fast: boolean);
  27.     procedure SATPlotFaceToScreen (theFace: FacePtr; where: Point; fast: boolean);
  28.     procedure SATCopyBits (src, dest: GrafPtr; destGD: GDHandle; {}
  29.                                     srcRect, destRect: Rect; fast: Boolean);
  30.     procedure SATCopyBitsToScreen (src: GrafPtr; srcRect, destRect: Rect; fast: Boolean);
  31.     procedure SATBackChanged (r: Rect); {Tell SAT about changes in backScreen}
  32. {SetPort replacements}
  33.     procedure SATGetPort (var port: GrafPtr; var device: GDHandle);
  34.     procedure SATSetPort (port: GrafPtr; device: GDHandle);
  35.     procedure SATSetPortOffScreen; {Use before using QuickDraw on offScreen}
  36.     procedure SATSetPortBackScreen; {Use before using QuickDraw on backScreen}
  37.     procedure SATSetPortScreen; {Use to set port to gSAT.wind}
  38. {Basic sprite handling}
  39.     function SATGetFace (resNum: integer): FacePtr;
  40.     procedure SATDisposeFace (theFace: FacePtr);
  41.     function SATNewSprite (kind, hpos, vpos: integer; setup: ProcPtr): SpritePtr;
  42.     function SATNewSpriteAfter (afterthis: SpritePtr; kind, hpos, vpos: integer; setup: ProcPtr): SpritePtr;
  43.     procedure SATKillSprite (who: Spriteptr);
  44. {Animating}
  45.     procedure SATRun (fast: Boolean); {The heart of the whole package!}
  46.     procedure SATRun2 (fast: Boolean); {Alternate routine for allowing resting sprites}
  47. {Special functions for advanced programmers}
  48.     procedure SATInstallSynch (theSynchProc: ProcPtr);
  49.     procedure SATInstallEmergency (theEmergencyProc: ProcPtr);
  50.     procedure SATSetSpriteRecSize (theSize: longint);
  51.     procedure SATSkip;
  52.     procedure SATKill; {Dispose of offscreen buffers to allow re-init}
  53. {Offscreen - use only if you need an *extra* offscreen buffer. These calls are likely to change in the future!}
  54.     procedure SATMakeOffscreen (var portP: GrafPtr; rectP: Rect; var retGDevice: GDHandle); {Make offscreen buffer in current screen depth and CLUT.}
  55.     procedure SATDisposeOffScreen (var portP: GrafPtr; theGDevice: GDHandle); {Get rid of offscreen}
  56.     function CreateOffScreen (bounds: Rect; depth: Integer; colors: CTabHandle; var retPort: CGrafPtr; var retGDevice: GDHandle): OSErr; {From Principia Offscreen - color only}
  57.     procedure DisposeOffScreen (doomedPort: CGrafPtr; doomedGDevice: GDHandle);{From Principia Offscreen - color only}
  58. {Face manipulation (for advanced programmers)}
  59.     procedure SATSetPortMask (theFace: FacePtr);
  60.     procedure SATSetPortFace (theFace: FacePtr);
  61.     procedure SATSetPortFace2 (theFace: FacePtr);
  62.     function SATNewFace (faceBounds: Rect): FacePtr;
  63.     procedure SATChangedFace (theFace: FacePtr);
  64.  
  65. {Old names, kept for compatibility with old programs}
  66. {To use them, include SATold.p in the project and de-comment the declarations below.}
  67. {***}
  68. {function GetFace (resNum: integer): FacePtr;}
  69. {procedure DisposeFace (theFace: FacePtr);}
  70. {function NewSprite (kind, hpos, vpos: integer; setup: ProcPtr): SpritePtr;}
  71. {function NewSpriteAfter (afterthis: SpritePtr; kind, hpos, vpos: integer; setup: ProcPtr): SpritePtr;}
  72. {procedure KillSprite (who: SpritePtr);}
  73. {function NewFace (faceBounds: Rect): FacePtr;}
  74. {procedure ChangedFace (theFace: FacePtr);}
  75. {procedure PeekOffscreen; {Old name for SATRedraw}
  76. {procedure ConfigureSAT (PICTfit: boolean; newSorting, newCollision, searchWidth: integer);}
  77. {procedure InitSAT (pictID, bwpictID, Xsize, Ysize: integer);}
  78. {procedure CustomInitSAT (pictID, bwpictID: integer; SATdrawingArea: Rect; {}
  79. {preloadedWind: WindowPtr; chosenScreen: GDHandle; useMenuBar, {}
  80. {centerDrawingArea, fillScreen, dither4bit, beSmart: Boolean);}
  81. {procedure SkipSAT;}
  82. {procedure RunSAT (fast: Boolean);}
  83. {procedure KillSAT;}
  84.  
  85. {New procedures, EXPERIMENTAL, intended for making a C++ interface}
  86.     function SATGetFacePP (resNum: integer; fStorage: Ptr): FacePtr;
  87.     function SATNewSpritePP (afterthis: SpritePtr; sStorage: Ptr; theKind, hpos, vpos: integer; setup: ProcPtr): SpritePtr;
  88.     procedure SATCopySprite (destSprite: SpritePtr; srcSprite: SpritePtr);
  89.     function SATNewFacePP (faceBounds: Rect; fStorage: Ptr): FacePtr;
  90.     procedure SATCopyFace (destFace: FacePtr; srcFace: FacePtr);
  91.     procedure SATDisposeFacePP (theFace: FacePtr);
  92.  
  93.  
  94. {Cicn utilities}
  95.     function SATGetCicn (cicnId: integer): CIconHandle;
  96.     procedure SATPlotCicn (theCicn: CIconHandle; dest: GrafPtr; destGD: GDHandle; r: Rect); {Borde jag lägga till device?}
  97.     procedure SATDisposeCicn (theCicn: CIconHandle);
  98.  
  99. {Utilities}
  100.     procedure SATSetStrings (ok, yes, no, quit, memerr, noscreen, nopict, nowind: Str255);
  101.     function SATTrapAvailable (theTrap: Integer): Boolean;
  102.     procedure DrawInt (i: integer);
  103.     procedure DrawLong (l: longint);
  104.     function Rand (n: integer): integer;
  105.     function Rand10: integer;
  106.     function Rand100: integer;
  107.     procedure ReportStr (str: str255);
  108.     function QuestionStr (str: str255): Boolean;
  109.     function SATFakeAlert (s1, s2, s3, s4: Str255; nButtons, defButton, cancelButton: integer;{}
  110.                                     t1, t2, t3: Str255): integer;
  111.     procedure CheckNoMem (p: Ptr); {If the Ptr is nil, out of memory emergency exit}
  112.     procedure SetMouse (where: point);
  113. {Pattern utilities}
  114.     procedure SATPenPat (SATpat: SATPatHandle);
  115.     procedure SATBackPat (SATpat: SATPatHandle);
  116.     function SATGetPat (patID: integer): SATPatHandle;
  117.     procedure SATDisposePat (SATpat: SATPatHandle);
  118. {Menu bar utilities}
  119.     procedure SATShowMBar;
  120.     procedure SATHideMBar (wind: WindowPtr);
  121. {PICT utilities}
  122.     procedure SATGetandDrawPICTRes (id: integer);
  123.     procedure SATGetandDrawPICTResInRect (id: integer; frame: Rect);
  124.     procedure SATGetandCenterPICTResInRect (id: integer; frame: Rect);
  125. {Sound}
  126.     procedure SATSoundInit; {Called from SATInit}
  127.     procedure SATSoundPlay (TheSound: Handle; Priority: integer; CanWait: boolean);
  128.     procedure SATSoundEvents; {Call this once in a while when not calling SATRun often}
  129.     procedure SATSoundShutup; {Silence, dispose of sound channel}
  130.     procedure SATSoundOn;
  131.     procedure SATSoundOff;
  132.     function SATSoundDone: Boolean; {Any sound going on ?}
  133.     function SATGetSound (sndId: integer): handle;        { To load a sound and get a handle for SATSoundPlay }
  134.     function SATGetNamedSound (name: Str255): Handle; { Same but using resource names }
  135.     procedure SATDisposeSound (theSnd: handle);
  136. {Multi-channel sound routines}
  137.     function SATSoundInitChannels (num: integer): integer;
  138.     function SATSoundDoneChannel (chanNum: integer): Boolean;
  139.     procedure SATSoundPlayChannel (theSound: Handle; chanNum: integer);
  140.     procedure SATSoundReserveChannel (chanNum: integer; reserve: Boolean);
  141.     procedure SATSoundShutupChannel (chanNum: integer);
  142.     procedure SATPreloadChannels;
  143. {Experimental, likely to be renamed/removed/changed:}
  144.     procedure SATSoundPlay2 (theSound: Handle; priority: integer; canWait, skipIfSame: Boolean);
  145.     procedure SATSoundPlayEasy (theSound: Handle; canWait: Boolean);
  146. {More multi-channel:}
  147.     function SATGetNumChannels: integer;
  148.     function SATGetChannel (chanNum: integer): Ptr;
  149. {Customization}
  150.     procedure SATSetSoundInitParams (params: Longint);
  151.  
  152. implementation
  153. end.